<?php

/**
 * Этот класс используется для обработки простых шаблонов, где все переменные подставляются заменой
 */
class SimpleTemplate implements iSimpleTemplate {
	
	private static $aLoadedTemplates = array ();
	
	private
		$sTemplatePath = '',
		$aVars = array ();
	
	/**
	 * Конструктор
	 * @param string $sTemplatePath относительный путь до шаблона (~/explay/templates/simple/)
	 */
	public function __construct ($sTemplatePath) {
		$this->sTemplatePath = ENGINE_ROOT . '/templates/simple/' . $sTemplatePath;
	}
	
	/**
	 * Устанавливает переменную
	 * @param string $varName имя переменной
	 * @param mixed $value значение переменной
	 * @return void
	 */
	public function setVar ($varName, $value) {
		$this->aVars[$varName] = $value;
	}
	
	/**
	 * Возвращает обработанный контент шаблона
	 * @return string
	 */
	public function display () {
		if (!file_exists ($this->sTemplatePath)) {
			throw new CoreException (lang('error_template_not_exists',__CLASS__));
		}
		
		if (isset (self::$aLoadedTemplates[$this->sTemplatePath])) {
			$fileContent = self::$aLoadedTemplates[$this->sTemplatePath];
		} else {
			$fileContent = self::$aLoadedTemplates[$this->sTemplatePath] = file_get_contents ($this->sTemplatePath);
		}
		
		foreach ($this->aVars as $varName => $value) {
			$fileContent = str_replace ($varName, $value, $fileContent);
		}
		
		$fileContent = str_replace ("%HTTP_HOST%", str_replace ('http://', '', HTTP_HOST), $fileContent);
		
		return $fileContent;
	}
	
}